1. Field of the Invention
The present invention relates to a technology for developing web applications in a multiple virtual machine environment.
2. Description of the Related Art
In recent years, an office environment system is being built which allows client based customization by adding or deleting applications to process client requests from each of a plurality of clients. The customization can be performed by adding a new application developed by a third party vendor, which provides hardware components or software programs installable in an existing hardware and software configuration. However, it is obvious that such a newly added application should not undermine the basic functions of the system.
Upon receiving a client request corresponding to one of the applications, an office environment system first needs to identify an appropriate resource that can execute the application and then transfer the request to that resource.
To facilitate optimum performance of a server in an office environment system, a technology called capacity on demand is used that, based on the access status or the processing load of the server, controls resources such as a central processing unit (CPU) or a memory in the server. For example, Published Japanese translation of PCT application 2005-539298 discloses a technology for configuring a web server in a remote and dynamic manner such that capacity on demand is used efficiently.
According to that technology, a first server group processes a request from a client device and a third server group provides resources for processing the request. A second server group determines whether the performance of the first server group and the third server group has reached a threshold, and accordingly adds a server to or deletes a server from either one or both of the two server groups. Such use of capacity on demand facilitates in achieving a robust and flexible web server system. Thus, one server can allocate various processing functions to other servers by dynamically adding resources.
Japanese Patent Application Laid-open No. 2007-135238 discloses an image forming apparatus that provides web services without any need to install a driver in a personal computer (PC) of the user and irrespective of the type of the user PC or an operating system (OS) installed in the user PC. The image forming apparatus includes a web service providing unit corresponding to each of a plurality of hardware resources. Upon receiving from the user PC a processing request that includes a message written in a predetermined message routing protocol, a web service function is called that corresponds to web service identification information described in the message such that each web service providing unit can identify a web service based on the web service identification information, control the corresponding hardware resource to provide the identified web service, and send a processing result to the user PC.
Usually, when an office environment system that allows client based customization is built in a process based OS such as UNIX (registered trademark), then the process is divided into an appropriate number of granules to make it robust against errors or exceptions.
However, when Java (registered trademark) is used as the programming language for application development, then a plurality of applications can be executed in a single virtual machine. In that case, it is not reasonable to divide the process in granules. Even so, to enhance the robustness of the office environment system, it can be built to include two virtual machines where web applications for basic functionality are installed in one virtual machine and applications developed by third party vendors are installed in the other virtual machine.
Meanwhile, a system implementing capacity on demand is used for the optimization of server resources, where it is assumed that each server has independent hardware resources. Such a system is not suitable in a multiple virtual machine environment.
Moreover, a system that provides web service irrespective of the user environment is also not suitable for allocating requests to a plurality of virtual machines in a multiple virtual machine environment.
In a multiple virtual machine environment, if an HTTP server is installed to supervise web applications of all virtual machines, then inter-process communication between the HTTP server and the web applications becomes necessary. However, adding inter-process communication functionality in each web application increases the workload of a developer. On the other hand, in a single virtual machine environment, because an HTTP server and a plurality of web applications are installed in the same virtual machine, inter-process communication becomes redundant.
Taking into consideration such issues, a multiple virtual environment is anticipated that allows development of new web applications without inter-process communication functionality and that appropriately determines a web application in one of the virtual machines for processing a client request.